home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Games / Xconq 7.1.0 / lib / flattop.g < prev    next >
Text File  |  1996-04-04  |  6KB  |  285 lines

  1. (game-module "flattop"
  2.   (title "Flattop Battles")
  3.   (blurb "WW II, in the Pacific, aboard a carrier")
  4.   (variants (see-all false))
  5.   )
  6.  
  7. (unit-type f (name "fighter") (image-name "1e")
  8.   (help "protects ships from aircraft"))
  9. (unit-type d (name "dive bomber") (image-name "1e")
  10.   (help "attacks ships by bombing at close range"))
  11. (unit-type t (name "torpedo bomber") (image-name "torp-bomber")
  12.   (help "carries deadly torpedos"))
  13. (unit-type pby (name "PBY") (char "p")
  14.   (help "long-range scout plane"))
  15. (unit-type dd (name "destroyer") (char "D")
  16.   (help "small ship that protects against subs"))
  17. (unit-type sub (name "submarine") (char "S")
  18.   (help ""))
  19. (unit-type cve (name "escort carrier") (char "E") (image-name "cv")
  20.   (help "small aircraft carrier"))
  21. (unit-type cl (name "light cruiser") (char "R") (image-name "ca")
  22.   (help ""))
  23. (unit-type ca (name "heavy cruiser") (char "R")
  24.   (help ""))
  25. (unit-type cv (name "carrier") (char "C")
  26.   (help ""))
  27. (unit-type bb (name "battleship") (char "B")
  28.   (help ""))
  29. (unit-type / (name "base") (image-name "airbase")
  30.   (help ""))
  31.  
  32. (material-type fuel (char "o") (help "how to get around"))
  33. (material-type ammo (char "a") (help "small stuff"))
  34. (material-type shell (char "A") (help "8 to 16 inch"))
  35. (material-type bomb (char "b") (help "iron bombs"))
  36. (material-type torps (char "!") (help "death to ships"))
  37.  
  38. (define o fuel)
  39. (define a ammo)
  40. (define A shell)
  41. (define b bomb)
  42. (define ! torps)
  43.  
  44. (terrain-type sea (char ".") (color "sky blue"))
  45. (terrain-type atoll (char ",") (color "cyan"))
  46. (terrain-type island (char "+") (color "forest green") (image-name "forest"))
  47.  
  48. (define combat-air (f d t))
  49. (define air (f d t pby))
  50. (define heavy (cl ca bb))
  51. (define carriers (cve cv))
  52. (define ships (dd sub cve cl ca cv bb))
  53.  
  54. ;;; Static relationships.
  55.  
  56. (table unit-size-as-occupant
  57.   (u* u* 99)
  58.   (air carriers 1)
  59.   (air / 4)
  60.   (ships / 1)
  61.   )
  62.  
  63. (add air capacity 0)
  64. (add carriers capacity (4 8))
  65. (add / capacity 32)
  66.  
  67. (add t* capacity 4)
  68.  
  69. (table unit-size-in-terrain
  70.   ;; Any number of aircraft can share the same airspace.
  71.   (air t* 0)
  72.   ;; Up to 4 ships (irrespective of size) in a cell.
  73.   (ships t* 1)
  74.   ;; Base takes up entire cell.
  75.   (base t* 4)
  76.   )
  77.  
  78. (table unit-storage-x
  79.   (ships (fuel ammo) 500)
  80.   (air fuel 24)
  81.   (pby fuel 48)
  82.   (air ammo 2)
  83.   (pby ammo 0)
  84.   (d b 2)
  85.   (t torps 2)
  86.   ((dd sub) torps 12)
  87.   (cve (b torps) 25)
  88.   (cv (b torps) 50)
  89.   (heavy shell 50)
  90.   (/ m* 1000)
  91.   )
  92.  
  93. (table base-consumption
  94.   (air fuel 12)
  95.   (pby fuel  6)
  96.   (ships fuel 1)
  97.   )
  98.  
  99. (table hp-per-starve
  100.   ;; Aircraft splash immediately if they run out of fuel.
  101.   (air fuel 1.00)
  102.   ;; Ships have a short grace period.
  103.   (ships fuel 0.10)
  104.   )
  105.  
  106. ;;; Vision.
  107.  
  108. (table see-chance-at
  109.   (u* sub 50)
  110.   )
  111.  
  112. (table see-chance-adjacent
  113.   (u* sub 10)
  114.   (dd sub 20)
  115.   )
  116.  
  117. ;;; Actions.
  118.  
  119. (add air acp-per-turn 12)
  120. (add pby acp-per-turn 6)
  121. (add ships acp-per-turn 3)
  122.  
  123. (add / acp-per-turn 0)
  124.  
  125. ;;; Movement.
  126.  
  127. (add / speed 0)
  128.  
  129. (add air free-mp 12)
  130. (add pby free-mp 6)
  131.  
  132. (table mp-to-enter-terrain
  133.   (ships atoll 2)
  134.   (ships island 10)
  135.   )
  136.  
  137. (table mp-to-enter-unit
  138.   ;; Aircraft cannot sortie again until next turn.
  139.   (air ships 12)
  140.   (pby ships 6)
  141.   )
  142.  
  143. (table zoc-range
  144.   ;; PBYs can never block anyone.
  145.   (u* pby -1)
  146.   (pby u* -1)
  147.   ;; Nor can subs.
  148.   (u* sub -1)
  149.   (sub u* -1)
  150.   )
  151.  
  152. ;; Everybody needs fuel.
  153.  
  154. (table material-to-move
  155.   (u* fuel 1)
  156.   )
  157.  
  158. (table consumption-per-move
  159.   (u* fuel 1)
  160.   )
  161.  
  162. ;;; Combat.
  163.  
  164. (add ships hp-max (5 5 5 5 10 10 20))
  165. (add / hp-max 100)
  166.  
  167. (table acp-to-attack
  168.   (air u* 3)
  169.   )
  170.  
  171. (table hit-chance
  172.   (u* u* 50)
  173.   (f air 80)
  174.   (f f 60)
  175.   ;; PBYs have no combat capability.
  176.   (pby u* 0)
  177.   (f carriers 20)
  178.   (sub air 20)
  179.   (dd sub 70)
  180.   (carriers u* 10)
  181.   ;; Only combat aircraft and heavy ships can hit the base.
  182.   (u* / 0)
  183.   ;; ...and they always hit.
  184.   (combat-air / 100)
  185.   (heavy / 100)
  186.   )
  187.  
  188. (table damage
  189.   (u* u* 1)
  190.   (pby u* 0)
  191.   (heavy u* 3)
  192.   ((t dd sub) ships 1d4+1)
  193.   ((t dd sub) (cv bb) 1d5+6)
  194.   (bb / 1d10+5)
  195.   )
  196.  
  197. (table consumption-per-attack
  198.   (air ammo 1)
  199.   (carriers ammo 1)
  200.   ((t dd sub) torps 1)
  201.   (heavy shell 1)
  202.   )
  203.  
  204. (table hit-by
  205.   (ships (b torps) 1)
  206.   (air ammo 1)
  207.   (u* shell 1)
  208.   )
  209.  
  210. ;50 air carriers protect
  211.  
  212. ;"sinks" ships destroy-message
  213. ;"shoots down" air destroy-message
  214.  
  215. ;; 0 air control
  216.  
  217. ;;; Random setup.
  218.  
  219. (add t* alt-percentile-min (  0  96  98))
  220. (add t* alt-percentile-max ( 96  98 100))
  221. (add t* wet-percentile-min 0)
  222. (add t* wet-percentile-max 100)
  223.  
  224. (set edge-terrain sea)
  225.  
  226. (set country-radius-min 4)
  227. (set country-separation-min 30)
  228. (set country-separation-max 32)
  229.  
  230. (add u* start-with (8 8 8 4 6 2 4 2 2 2 2 1))
  231.  
  232. (table favored-terrain
  233.   (u* t* 0)
  234.   (ships sea 100)
  235.   (/ (atoll island) 100)
  236.   )
  237.  
  238. (set advantage-min 1)
  239. (set advantage-default 2)
  240. (set advantage-max 8)
  241.  
  242. ;;; Everybody starts out full.
  243.  
  244. (table unit-initial-supply (u* m* 9999))
  245.  
  246. (set terrain-seen true)
  247. (add / already-seen 100)
  248.  
  249. ;; Note that there are no default namers for unit types, so any type
  250. ;; not mentioned in the side's own namers will simply not be named.
  251.  
  252. (set side-library '(
  253.   ((noun "American") (emblem-name "flag-usa")
  254.    (unit-namers
  255.     (cl  "us-cl-names")
  256.     (ca  "us-ca-names")
  257.     (cve "us-cve-names")
  258.     (cv  "us-cv-names")
  259.     (bb  "us-bb-names"))
  260.    )
  261.   ((noun "Japanese") (emblem-name "flag-japan")
  262.    (unit-namers
  263.     (ca  "japanese-ca-names")
  264.     (cve "japanese-cve-names")
  265.     (cv  "japanese-cv-names")
  266.     (bb  "japanese-bb-names"))
  267.    )
  268.   ))
  269.  
  270. (include "ng-ships")
  271.  
  272. ;; Also worthwhile to have generator for names like "LC-1", "CA6", etc?
  273.  
  274. (scorekeeper (do last-side-wins))
  275.  
  276. (game-module (notes (
  277.   "This is a somewhat expanded version of the navy in the standard game. "
  278.   "Each side commands a large fleet, and the sole objective is to wipe out "
  279.   "the enemy's fleet.  There are different kinds of planes and ships, but "
  280.   "nothing else."
  281.  
  282.   "Speeds of ships are uniform, so that formations work better (don't want "
  283.   "the carriers outstripping their escorts). "
  284.   )))
  285.